https://github.com/locale-switcher/locale-switcher/
此套件直接抓localStorage語系並變更localStorage語系
規則依照i18n寫法,語系名稱有格式
因此必須避免把語系寫死
const devI18nLocale = localStorage.getItem('LOCALE_SWITCHER_LANGUAGE');
// 這裡的 locale 會影響到 i18n 的語系,所以要從 localStorage 取得
let locale = '';
if (import.meta.env.DEV) {
locale = devI18nLocale || import.meta.env.VUE_APP_I18N_LOCALE || 'zh-TW';
} else {
locale = 'en';
}
const i18n = createI18n<[MessageSchema], 'zh-TW' | 'zh-CN' | 'vi' | 'vi-VN' | 'en'>({
legacy: false, // 要把 legacy 設為 false,才可以使用 Composition API
locale,
fallbackLocale: 'zh-TW',
globalInjection: true,
messages: {
'zh-TW': zh,
'zh-CN': cn,
'vi-VN': vi,
vi,
en,
},
});